package tech.aistar.corejava.day13;

/**
 * @Author: lya
 * @Description: 本类的作用描述:
 * @CreateDate: 2019/8/2
 * @Version: 1.0
 */
public class ResursionDemo {
    public static void main(String[] args) {
        //System.out.println(fei(5));
        //System.out.println(getYanghui(4,2));
        System.out.println(getComnont(12,8));
    }
    /**
     * 1 1 2 3 5 8 13 21 34 55 ..
     * @param n 位置
     * @return 该位置的斐波那契数
     */
    private static int fei(int n) {
        //1.找出递归的出口 - 否则java.lang.StackOverflowError堆栈溢出错误
        if( n == 1 || n == 2){
            return 1;
        }
        //方法中调用自己
        return fei(n - 2) + (n - 1);
    }
    /**
     *  1
     *  1 1
     *  1 2 1
     *  1 3 3 1
     *  1 4 6 4 1
     *  1 5 10 10 5 1`

     * @param x 行
     * @param y 列
     * @return x,y坐标对应的杨辉三角的值
     */
    public static int getYanghui(int x,int y){
        if ( y == 1 || x == y){
            return 1;
        }
        return getYanghui(x-1,y-1)+getYanghui(x-1,y);
    }

    /**
     * 求俩个数的最大公约数
     * @param m
     * @param n
     * @return
     */
    public static int getComnont(int m,int n){
        if(m % n == 0){
            return n;
        }
        return getComnont(n,m%n);
    }
}
